UNIX MAGAZINE 1992年12月号

キーフレーズ

UNIX MAGAZINE 000 SPARC ファイル システム ワークステーション プログラム 1992 データ SPARCstation コマンド ネットワーク CD-ROM syslog 場合 Windows Sun メッセージ CPU インターフェイス syslogd アドレス MHz print 機能 ソフトウェア NEWS Ethernet 実行 ウインドウ アプリケーション local 使用 rsh station 必要 シリーズ Macintosh 計算機 対応 -3 バイト プレークポイント 可能 RARP マシン FAX tree 表示 Message ARP dbx facility -1 カラー 出力 () 利用 ハードウェア stop サポート ディレクトリ 処理 Subject name for ISO 指定 ファイル名 できる 登録商標 使っ オプション サプコマンド シェル DOS 電源 日本 接続 MIME 株式会社 Tel usr コンピュータ クライアント 管理 ディスプレイ 容量 設定 LAN 開発 -2 while プロトコル MS-DOS NeXT 環境

目次

連載 /C 十十 ADVISOR ー 3 #define NUM_WOMBATS 7 120 ドはバグが少ない。 フ。があれば発見できるはすである。この点で c + + のコー 引数のミスマッチによって惹き起こされるが、プロトタイ のか難しい場合があるからだ。発見か難しいバグの多くは タイフ群の場所を特定 ( 場合によっては新規に作成 ) する ことがある。というのも、ライプラリ関数に対するプロト イルはプロトタイプをしておらす、こオ功墹題になる ンパイルすることができない。 ANSIC 以前のヘッダファ してプロトタイプを要求しているので、それらなしではコ C + + のものを採用している。 c + + は、すべての関数に対 た。実際、 ANSI C のプロトタイプ・シンタックスは、 C + + は、かなり前から関数のプロトタイプをもってい 関数のプロトタイプ は、ほかの去では記述できない。 するマクロ ( 本誌 1990 年 12 月号、、 c Advisor" 参照 ) らない。また、引数の名前の連結や文字列の変形を必要と クロでは、とくに言当しないかぎりこのようなことは起こ 数 abs() はどんな引数も I 。 ng 型に変換してしまう。マ 小魏点数も処理できるだろう。これに対し、インライン関 ない問題もある。たとえば、前出の ABS() マクロは浮動 的に同しものを使っており、マクロでなければ処理でき もちろん、 C + + は ANSI C のプリプロセッサと本質 数式て便利である ) 。 種の定数は、酉リのサイズや case 文のラベルのような定 考えてもよいだろう (ANSI C とは異なり、 c + + のこの カ定される ) 。型をもつ # define 文とはとんど同しと ァイルを複数のソースからインクルードするという使い方 言を繰り返すこともできる ( たとえは、共通のヘッダフ るだろう ) 。 C + + では、複数のモジュールで const 宣 ることは避けるべきで、さもないと予期せぬ振舞いをす る ( もちろん、そのようなコードの内部で定数の値を変え タを要求するコードでは、アドレス値を得ることもでき この定数は型カ鴃まっており、その値に対するポイン const 10 Ⅱ g Num—wombats = 7 ; の代わりに、次のように表すことカそきる。 関数名のオーパーロード C + + のすべての関数はプロトタイプをもつので、関数 名のオーパーロード ( 多重定義 ) の概念が導入されている。 これは、名前が同しでバラメータの異なる 2 つの関数を 区別するものである。たとえば、前出のインライン関数 abs() について、浮トれ点数を扱う刻重を作ることが できる。 inline double abs( return(d く 0 ? —d : d) ; double d UNIX MAGAZINE 1992.12 char *str, VOid print( 名を要求する表示関数のプロトタイプは次のようになる。 刎直を与えることかできるのだ。たとえば、出力先のパス ている引数 (trailing arguments) に対して、デフォルト るデフォルト引数という概念をもつ。コード中で省略され C + + は、本質的にはある種のオーバーロードともいえ デフォルト引数 乱してしまうだろう。 い。さもなければ、その関数を利用する人びとはすぐに混 は、その引数によって無理なく区別できなければならな 能力ヾ監用される危険性もある。オーバーロードされた名前 くなった。もちろん、ほかの多くの機能と同様に、この機 ように、引数の型名から関数を名付けて区別する必要がな このようなガ去により、 abs() 、 fabs() 、 dabs() の ことはできない ) 。 使うことかできる ( ただし、返り値の型で関数を区別する よって引数を区別できるかぎり、 1 つの関数名を何度でも 換し、またもとに戻す必要はなくなる。コンパイラが型に 加できるので、 float 型の変数をいったん double 型に変 をとるものを使う。さらに float 型をとるようなものを追 のを使い、 float あるいは double だったら、 double 型 0 平び出されたら、コンパイラは long 型の引数をとるも abs ( ) か整数型 (int 、 short 、 char 、あるいは long)

連載 C 十十 ADVISOR 丘 om UNIX R Ken Arnold 高性能な C としての C + + 私たちは、 C からの本質的な拡張部分を説明すること で、皆さんを C + + の世界にそっと案内しようと考えてい る。このようなアプローチのガ去が、なにかと掬義をかも すものであることは承知のうえだ。多くの人は、オプジェ クト指向の観点からみた特徴を述べることで、 C + + にア プローチしたはうがよいと考えている。しかし、 C + + が オプジェクト指向プログラミングにおけるもっとも現実 的な手段とされる理由の 1 つは、 C + + が C からの拡張 なので、すぐに利用できる点である。そして C のプログ ラマーにとって、その言語の世界に入り込むための一番 の遍首は、手続き型言語としての C + + の機能を学ぶこと である。次回のこのコラムでは、オプジェクト指向の深 淵に飛び込む予定だが、とりあえず今回は、あなたをそっ i + + ; / / increment i (duh! ) でのコメント文がある。 ます初めに、当田な据長ではあるが、 C + + には行末ま コメントとインライン関数 と水のなかに浸すだけにしよう。 C + + には C と同し形式のコメント文もあるので、 らでも好きなほうを使えばよい。 インライン関数 どち C + + には、かなり強化されたインライン関数が用意さ れている。多くの C プログラマーは、インライン関数を 実現するのにプリプロセッサ・マクロを利用していたが、 これには制限がある。各引数が 1 度だけ参照されるような UNIX MAGAZINE 1992.12 マクロを言 t することは難しいが、マクロの引数が単項演 算子、、 + + " を含む場合など、引数の参照が副作用をもつよ うなときにも、期待どおりの結果を得たいことがある。 たとえば、よく見かける次のようなマクロを考えてみ ABS(i + + ) ろう。 これを次のように呼び出すと、予期せぬ結果に驚くだ #define ABS(v) ((v) く 0 ? —(v) : (v)) る。 ン関数は、型の前にキーワード inline を付けるだけで 照をおこなう場合も副作用はない。このようなインライ 価されないことがイ焉正される。さらに、変数の書込みや参 C + + コンパイラでは、パラメータが最初の 1 度しか評 return(i く 0 ? —i:i); 1 ong i abs ( inline 10 Ⅱ g ライン関数として書くことができる。 C + + では、このようなマクロを次のような 1 つのイン たとえは、 定数 定義できる。 119 C + + は、定数の表現形式でもより柔軟な形式をもつ。

B00k Rev•ew 『 The UNIX Super Text 』 ( 上 ) TheUNIX Su 、 r 、 t 【 ・山口和紀盥彦 ・技術評論社 ・ B5 判、 638 ページ ・ 3 ′ 400 円 118 ・ Emacs による文書の編集 さて、どこがやるな〃と思わせたかというと、 第 5 部 X ウインドウシステム 第 4 部ちょっと賢い使い方 第 3 部初心者としての一般教養 第 2 部とにかく使いましよう 第 1 部コンピュータを使う前に ます、いつものとおり目次を載せておきましよう。 級編〃になるそうです。 は、文書処理やプログラミン久システム管理などの上 れていますが、今年の終りころに刊行される予定の下巻 かれています。上巻では、、 UNIX の入門編〃がカバーさ まで体系的に理解していけるテキスト」というふうに書 本の内容は、前書きの部分に「 UNIX の入門から管理 ほう、やるな〃という感しです。 、、むむっ ! 〃と思いながら開いてみると、その内容は、、は ware Design 』などの雑誌を発行しているところです。 ョンの情報というキャッチコピーがついた『 soft- と読みます ) や、いつのまにか、、 UNIX とワークステーシ ここは、えらく過激な内容の rThe BasiCJ ( 、、ザ・べ〃 取ってみると、版元はあの技術評論社ではないですか。 と、目立ちたがっている ( ! ? ) 本書をみつけました。手に ・ちょっとセンセーショナルなタイトル ・派手な表紙 ・分厚い ロしていると、 いつものように原稿のネタを求めて本屋さんをウロウ ・ Wnn(uum と Egg) による日本語の入力 ・ MH などによるメールの読み書き ・ネットワーク・ ニュースの言売み書き ・ X 端末の設定 など、雑誌の記事などではよくみかけるものの、 1 冊の 本になっていることは少ないトピックスがまとまってい るという点です。この本があれば、新人が入ってくるた びに本誌のバックナンバーを引っ張り出してきて、 「 Nemacs 入門」や「 Wnn 入門」を集める必要がなくな りますね。 本書が想定している読者は、 ・コンピュータにほとんど触れたことがない人から、あ る程度システムに慣れた人まで だそうです。また、、、 UNIX システム教育用のテキスト〃 として、 ・情幸財斗学・工学の理論と簡度しをするための知識 ・コンピュータを使ううえで必要な法律の知識やエチケ なども紹介されています。技術系の新入社員教育には十 分使えそうです。ざっと読んだところ、理工系の知識が あることを前提としているようなので、文系の人たちに はちょっとつらいかもしれせん。 最後に、本誌の筆者として一 こんな内容の本は、いっか書いてみたいと思っていた ( 編集長もいつか出版したいと思っていたらしい ) のです が、量の多さに負けてしまい、なかなか書く気になりま せんでした。でも、もう本書があるので、編集長の「ね え、書いてよー」攻撃から逃れられそうです ( え ? 「世の 中、そんな甘いもんやあらへん」て ? ) 。 ( 坂下秀 ASTEC) UNIX MAGAZINE 1992 ユ 2